﻿
#pragma execution_character_set("utf-8")
#include "changewidget.h"
#include "ui_changewidget.h"
#include "database.h"
#include <QPainter>
#include <QImage>
#include <QPixmap>

/**
 * @brief 修改密码界面构造函数
 * @param parent 父窗口指针
 */
ChangeWidget::ChangeWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ChangeWidget)
{
    ui->setupUi(this);
}

/**
 * @brief 析构函数
 */
ChangeWidget::~ChangeWidget()
{
    delete ui;
}

void ChangeWidget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    QImage t_image;
//    t_image.load(":/image/bg.png");

//    t_image = t_image.scaled(this->width(),this->height());
//    painter.drawPixmap(0,0,this->width(),this->height(),QPixmap::fromImage(t_image));

}

/**
 * @brief 修改密码按钮点击事件
 * @details 处理密码修改逻辑：
 * 1. 输入验证：检查密码一致性、长度有效性
 * 2. 数据库操作：更新管理员密码
 * 3. 结果处理：显示操作提示并跳转界面
 */
void ChangeWidget::on_pushButton_1_clicked()
{
    QString str1 = ui->lineEdit_1->text();//原密码
    QString str2 = ui->lineEdit_2->text();//新密码
    QString str3 = ui->lineEdit_3->text();//确认密码
    if(str3!=str2){//这里判断密码是否一致
        QMessageBox msgBox;//弹出窗口
        msgBox.setWindowTitle("提示");
        msgBox.setText("密码不一致！");
        msgBox.exec();//循环事件
        return;
    }
    //判断密码长度
    if(str1.length() < 2 || str2.length() < 2){
        QMessageBox msgBox;
        msgBox.setWindowTitle("提示");
        msgBox.setText("账号或密码不能为空");
        msgBox.exec();
        return;
    }
    //以下是数据库操作
    if (! DataBasePri::database.open()){//打开数据库
        qCritical() << DataBasePri::database.lastError().text();
        return;
    }
    //创建操作对象
    QSqlQuery query(DataBasePri::database);
    //操作内容
    QString updataStr = QString("update user_information set passwd = '%1' where name = 'admin'").arg(str2);
    //执行数据库数据交互
    bool ret = query.exec(updataStr);
    //打印信息
    qDebug()<<"ddddddddd"<<query.lastError();
    //关闭数据库
    DataBasePri::database.close();
    //判断执行结果
    if(ret == true){
        QMessageBox msgBox;
        msgBox.setWindowTitle("提示");
        msgBox.setText("修改成功！");
        msgBox.exec();
        emit sendDisWidget("m_LoginWidget");
    }else{
        QMessageBox msgBox;
        msgBox.setWindowTitle("提示");
        msgBox.setText("修改失败！");
        msgBox.exec();
    }
}

void ChangeWidget::on_pushButton_2_clicked()
{
    emit sendDisWidget("m_AdminWidget");
}
